perm filename LECTUR[S88,JMC] blob
sn#858215 filedate 1988-06-07 generic text, type C, neo UTF8
COMMENT ā VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 %lectur[s88,jmc] General lecture on logic of common sense in AI
C00008 00003 \smallskip\centerline{Copyright \copyright\ \number\year\ by John McCarthy}
C00009 00004 Notes:
C00011 ENDMK
Cā;
%lectur[s88,jmc] General lecture on logic of common sense in AI
\input memo.tex[let,jmc]
\title{Mathematical Logic and Common Sense}
For 30 years I have been taking the logic approach to artificial
intelligence, concentrating on computer programs with common sense.
Such programs store what they know in mathematical logic and decide what
to do by logical reasoning. Making intelligent programs is hard and
human-level intelligence is still far off. The object of this lecture
is to tell what has been accomplished and what remains to be done.
We begin with some remarks about the AI enterprise in general
and the logic approach in particular.
1. We treat AI as a branch of computer science rather than
as a branch of biology. This means that we think about what the
common sense world is like and how goals can be achieved with the
physical abilities and knowledge that may be available. This contrasts
with making and testing psychological or neurophysiological theories
of how humans or animals behave intelligently. Other people do
psychological and physiological research on intelligence and interact
with the AI approach.
2. My work has concentrated on theory rather than experiment.
Experimental work involves writing computer programs and seeing how
well they do at behaving intelligently in particular problem domains.
My part of the theory involves inventing logical languages for expressing
facts about the world and seeing whether the conclusions we would like
our programs to reach are consequences of logical inference. It has also
been necessary to invent new methods of logical inference --- that can jump
to conclusions that sometimes have to be retracted. This is called
nonmonotonic logic. Other people do experiments and interact with
the theorists.
3. There are many systems of mathematical logic, but we mainly
use well known systems of first and second order logic. Deciding to
use first order logic doesn't determine the logical language. For that
we need to decide what kinds of objects the language talks about,
what logical functions and relations are to be used to talk about them,
and how they are to be represented symbolically.
4. Making a logical theory of the common sense world faces
difficulties that are evaded in conventional scientific mathematical
theories. The scientist or engineer uses his common sense to decide
what phenomena to take into account in his formal theory. Then he
constructs a theory of just those phenomena and uses it. If he
has taken the right phenomena into account and does his theoretical
computations well, the theory is useful. If the common sense part
of his work was inadequate, he has to start over and make a new
theory, but this work is done outside the theory. Even when the
theory is satisfactory, it is ``surrounded'' by English language
sentences telling what the theoretical terms mean and how the
theory is to be used.
If we want the computer to do the common sense part of the
work, then the language used must be open ended. It must allow
any kind of extension or modification within {\it the formal
language itself}. Such languages are the goal of the logic
approach to AI, but only partial success has been achieved. Our
languages are still too specialized.
5. [epistemological adequacy]
\section{What is common sense?}
\section{Nonmonotonic reasoning}
\section{AI and philosophy}
epistemology, free will
\section{contexts}
\section{Examples}
travel
\smallskip\centerline{Copyright \copyright\ \number\year\ by John McCarthy}
\smallskip\noindent{This draft of lectur[s88,jmc]\ TEXed on \jmcdate\ at \theTime}
\vfill\eject\end
Notes:
travel example
complexify trip by multiple purposes and multiple sources of funds
we add a goal, i.e. to accomplish this other purpose
there is only limited conflict of goals
Put strips in a context so that a particular strips
system can be generalized to a system
that allows comparison of situations, i.e. one is better than another
without losing the strips statements already in the database.
It looks like to do strips, the context essentially have to include
situations, because if we want to be able to speak of the stages of
a strips computation, we can't forget the earlier stages. Thus if
we have holds(on(A,B),c1) and we want to discuss the effect of
moving A to C, we will have some sentence holds(on(A,C),c2) where
c2 may represent some modification of c1, but it looks like it
will be essentially isomorphic to result(move(A,top C),c1).